var colors = {
	FGCYAN : "\033[36m", 
	FGREEN : '\033[32m',
	FGRED : "\033[31m", 
	FGBLUE : "\033[35m", 
	BGRED : "\033[41m", 
	BGGREEN : "\033[42m"
};
exports.log = function(){
	arguments[0] = colors.FGREEN + arguments[0] + '\033[m';
	return console.log.apply(console, arguments);
}
exports.error = function(){
	arguments[0] = colors.FGBLUE + arguments[0] + '\033[m';
	return console.log.apply(console, arguments);
}
exports.warn = function(){
	arguments[0] = colors.FGRED + arguments[0] + '\033[m';
	return console.log.apply(console, arguments);
}

/**
 * 格式化字符串。
 * @param  {String} string 带标记的字符串，或者可变长度的字符串参数。
 * @param  {String} value1 第一个值，替换{0}。The value to replace token {0}
 * @param  {String} value2 第二个值，替换{1}...等等（可以有任意多个）。Etc...
 * @return {String} 转化过的字符串。The formatted string
 */
String.prototype.format = function () {
    var str = this; 
    if(typeof(arguments[0]) == 'string'|| typeof(arguments[0]) == 'number'){
        for(var i = 0, j = arguments.length; i < j; i++){
            str = str.replace(new RegExp('\\{' + i +'\\}', 'g'), arguments[i]);
        }
    }else{
        for(var i in arguments[0]){
            str = str.replace(new RegExp('\\{' + i +'\\}', 'g'), arguments[0][i]); // 大小写敏感
        }
    }

    return str;
}